Como firmar peticiones http para poder enviarlas a AWS
Documentación AWS Signature V4En el programa de testing K6 no permite cargar librerías externas, por lo tanto hay que usar la siguiente librería que usa código javascript directamente para generar la firma:
s0rc3r3r01/awsv4signUn código de ejemplo es el siguiente:
import awsv4sign from "./awsv4sign.js";
const awsCredentials = {
accessKeyId: getCredentialsForIdentity.Credentials.AccessKeyId,
secretAccessKey: getCredentialsForIdentity.Credentials.SecretKey,
sessionToken: getCredentialsForIdentity.Credentials.SessionToken,
};
const payload = '{"query":"query MyQuery {listTodos {items {name}}}","variables":null}'
// Firma de la petición a AppSync
const wrappedReq = awsv4sign.v4Sign(
{
hostname: 'example.com',
method: "POST",
params: {
headers: {
"Content-Type": "application/json",
'Host': 'example.com',
'X-Amz-Security-Token': "token-example-123456789"
},
},
path: "/graphql",
query: "",
service: "appsync",
payload: payload,
},
awsCredentials,
);
AWS | V4 | Firma